import numpy as np

# 线性回归模型的回归系数和截距
coefficients = np.array([257.068962, -7.95178837, 327.533514, 427.254431, 23653.9033])
intercept = -12113.451250917095


def predict_medical_costs():
    # 用户输入信息
    age = int(input("请输入你的年龄: "))
    sex = int(input("请输入你的性别（男=1，女=0）: "))
    bmi = float(input("请输入你的BMI: "))
    children = int(input("请输入你的孩子数量: "))
    smoker = int(input("请输入你是否是吸烟者（是=1，否=0）: "))

    # 创建特征变量和回归系数的数组
    x = np.array([age, sex, bmi, children, smoker])
    predicted_cost = np.dot(coefficients, x) + intercept

    # 如果预测值为负数，则将其调整为0
    if predicted_cost < 0:
        predicted_cost = 0

    # 输出预测的医疗费用，在两位小数处四舍五入
    print(f'根据你输入的信息，预测的医疗费用是: {round(predicted_cost, 2)}')


# 调用函数以预测的医疗费用
predict_medical_costs()